package com.unitd.frame.sso.starter;

import com.unitd.frame.sso.common.config.SSOConfig;
import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * @desc SSO支持SpringBoot而增加的starter 启动配置
 * @filename SsoProperties.java
 * @copyright www.unitd.com
 * @author Hudan
 * @version 1.0
 * @date 2018/1/10
 */
@ConfigurationProperties(prefix = "unitd.sso")
public class SsoProperties {

	/** SSO配置文件对应实体对象 */
	private SSOConfig config;
//	private SSOProperties properties; 						// Properties 配置文件属性对象
//	private String appName; 								// app名称
//	private String encoding; 								// 系统默认编码方式(UTF-8)
//	private String runMode; 								// 默认生成环境的运行模式
//	private String secretkey; 								// 盐值加密的18位私钥(当sso.properties中没有配置时,取此值)
//	private String cookieName; 								// 普通非跨域访问的cookie名称,默认为UID
//	private String cookieDomain; 							// 普通非跨域访问的cookie的默认顶级域名
//	private String cookiePath; 								// cookie的默认路径,比如服务器为tomcat,即Cookie在omcat的目录下都有效
//			private boolean cookieSecure; 					// 创建/使用cookie时,是否只能在HTTPS连接中被浏览器传递到服务器端进行会话验证,如果是HTTP连接则不会传递该信息,所以绝对不会被窃听到(它与cookie的setSecure()方法关联)
//	private boolean cookieHttponly; 						// 设置创建的cookie默认为httpOnly的,这种情况下,可以使cookie不能通过客户端脚本方法,增加cookie的安全性,防止或者减少XSS攻击及影响
//	private int cookieMaxage = -1; 							// cookie的默认有效期; 默认值为-1：表示关闭浏览器cookie就会消失
//	private boolean cookieBrowser; 							// Cookie 是否开启浏览器版本校验
//	private boolean cookieCheckip; 							// Cookie是否开启IP校验,默认为false
//	private String loginUrl; 								// 默认的登录地址
//	private String logoutUrl; 								// 默认的登出地址
//
//	private String authCookieSecretkey; 					// 跨域访问的盐值加密的18位私钥(当sso.properties中没有配置时,取此值)
//	private String authCookieName; 							// 跨域访问的cookie名称,默认为PID
//	private int authCookieMaxage; 							// 跨域访问的cookie有效期,默认为180秒
//	private int cacheExpires; 								// cookie的默认效期(-1 浏览器关闭时自动删除; 0 立即删除;120 表示Cookie有效期2分钟(以秒为单位))
//
//	private String tokenClass; 								// 自定义的Token类
//	private String encryptAlgorithm; 						// 对称加密算法(默认 RC4)
//	private boolean permissionUri; 							// 权限认证(默认 false)

	public SSOConfig getConfig() {
		return config;
	}

	public void setConfig(SSOConfig config) {
		this.config = config;
	}
}